/* Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
*
* NVIDIA CORPORATION and its licensors retain all intellectual property
* and proprietary rights in and to this software, related documentation
* and any modifications thereto.  Any use, reproduction, disclosure or
* distribution of this software and related documentation without an express
* license agreement from NVIDIA CORPORATION is strictly prohibited.
*/

#pragma once

#include "NVIDIAGfeSDKPublicPCH.h"

class NVIDIAGFESDK_API FGfeSDKCore
{
public:
    FGfeSDKCore(GfeSDK::NVGSDK_HANDLE* GFEHandle_);    // Takes ownership
    ~FGfeSDKCore();

    void Poll();
    void RequestPermissionsAsync(FGfeSDKRequestPermissionsParams const& Params, GfeSDK::NVGSDK_EmptyCallback Callback, void* Context);
    void GetUILanguageAsync(GfeSDK::NVGSDK_GetUILanguageCallback Callback, void* Context);

    friend class FNVIDIAGfeSDK;
private:
	GfeSDK::NVGSDK_HANDLE* GFEHandle;
};
